package goconfig

import (
	"strings"

	"github.com/spf13/viper"
)

// getConfig 获取全局配置
func getConfig() *viper.Viper {
	return viperConfig
}

// ReadConfig 读取全部配置
func ReadConfig(v *viper.Viper) error {
	m.Lock()
	defer m.Unlock()
	err := v.ReadInConfig()
	if err != nil {
		// return errorx.NewFromString("Error on parsing config file!")
		return err
	}
	return nil
}

// GetString GetString
func GetString(s string) string {

	return getConfig().GetString(strings.ToLower(s))
}

// GetUint32 GetUint32
func GetUint32(s string) uint32 {
	return getConfig().GetUint32(strings.ToLower(s))
}

// GetStringSlice GetStringSlice
func GetStringSlice(s string) []string {
	return getConfig().GetStringSlice(s)
}

// GetBool GetBool
func GetBool(s string) bool {
	return getConfig().GetBool(strings.ToLower(s))
}

// GetInt GetInt
func GetInt(s string) int {
	return getConfig().GetInt(strings.ToLower(s))
}
